package designPatterns.proxy;

/**
 * 1.概念
 * 	Java代理模式的核心思想是通过一个代理对象来控制对另一个对象的访问。
 * 	代理对象与被代理对象具有相同的接口，因此可以在任何时候替换原始对象，
 * 	并且可以通过代理对象来实现对原始对象的访问控制和管理。
 *
 * 	2.原理
 * 	代理模式主要包括两个角色：抽象角色和代理角色。
 * 	其中，抽象角色定义了代理对象和被代理对象的公共接口，
 * 	代理对象实现了抽象角色，并持有一个指向被代理对象的引用。
 * 	通过代理对象来调用被代理对象的方法，并可以在执行前后添加一些额外的操作来增强被代理对象的功能，如日志记录等。
 *
 * 	3.Java代理模式有两种实现方式：
 * 	    静态代理：代理类和被代理类都必须实现同一个接口，在代码中显式地定义代理类。
 * 	    动态代理：动态生成代理类，代理类不需要实现接口，可以在运行时动态地生成代理类。
 * 	4.动态代理有两种实现方式：
 * 	    jdk动态代理
 * 	    cglib动态代理
 *
 *  5.Java代理模式常用场景：
 *      远程代理：客户端通过代理对象访问远程服务器上的对象。
 *      虚拟代理：用于延迟加载资源，例如在Web页面中显示大量图片时，可以使用虚拟代理来只在需要时才加载图片。
 *      安全代理：用于控制对敏感对象的访问，例如只有管理员才能访问某些特定的对象。
 *      总之，Java代理模式通过代理对象实现了对被代理对象的控制和管理，提高了程序的可维护性和安全性，在软件开发中具有广泛的应用。
 *
 *
 *
 */
